package com.oreilly.ez.account;


import com.googlecode.aviator.AviatorEvaluator;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class ExpressClient {

    public static void main(String[] args) {


        System.out.println(2.0-1.1);

//        System.out.println(FelUtil.calc("a-b",
//
//                FelEntry.create("a", 2.0),
//                FelEntry.create("b", 1.1)
//                ));
////        System.out.println(FelUtil.calc("a/b",
////
////                FelEntry.create("a", "2"),
////                FelEntry.create("b", "3")
////                ));
//        System.out.println(FelUtil.calc("2.0-1.1"));
//        Object calc = FelUtil.calc("单价*数量+运费",
//                FelEntry.create("单价", 5000),
//                FelEntry.create("数量", 12),
//                FelEntry.create("运费", 7500)
//
//        );

//        System.out.println(calc);


//        double pow = Math.pow(1 + 4.9/12/100, 30 * 12);
////        System.out.println(FelUtil.calc("(本金*月利率*(1+月利率)^还款月数)/((1+月利率)^还款月数 -1)"));
//        Object result = FelUtil.calc("(本金*月利率* delta)/(delta -1)",
//                FelEntry.create("delta", pow),
//                FelEntry.create("本金", 420000),
//                FelEntry.create("月利率", 4.9/1200),
//                FelEntry.create("还款月数", 30*12)
//
//        );
//
//        System.out.println(result);
//        Object result = fel.eval("5000*12+7500");

//        ctx.set("单价", 5000);
//        ctx.set("数量", 12);
//        ctx.set("运费", 7500);
//        Object result = fel.eval("单价*数量+运费");
//        System.out.println(result);


        System.out.println(AviatorUtil.calc("a+b",
                Params.get().add("a",3).
                        add("b", 4)));

        Object monthDebt = AviatorUtil.calc("delta=math.pow((1+月利率), 还款月数); (本金*月利率* delta)/(delta -1)",
                Params.get().add("本金", 420000).
                        add("月利率", 4.9 / 1200).
                        add("还款月数", 30 * 12));
        System.out.println(monthDebt);



//        int totalMonth = 30*12;
//        double totalMoney = 420000;
//        List<FelEntry> monthDebtList = new ArrayList<>();
//        double avg =(double) AviatorUtil.calc("贷款本金/还款月数",
//                Params.get().add("贷款本金", totalMoney).
//                        add("还款月数", 30 * 12));
//        double monthAvg = (double) Math.round(avg*100)/100;
//        double sumAvg = 0;
//        for (int i = 1; i <= totalMonth; i++) {
//
//            Object res = AviatorUtil.calc("monthAvg + (贷款本金-累计已还本金)*月利率",
//                    Params.get().add("贷款本金", totalMoney).
//                            add("monthAvg", monthAvg).
//                            add("月利率", 4.9 / 1200).
//                            add("还款月数", 30 * 12).add("累计已还本金", sumAvg)
//            );
//
//
//            System.out.println(String.format("第 %s月, 还款 %s", i, res));
//            sumAvg = sumAvg + monthAvg;
//
//
//
//        }




        Object calc1 = AviatorUtil.calc("a-b", Params.get().add("a", "0.9").add("b", "1.0"));
        System.out.println(calc1);






    }



}
